OFTP2 File Listener
Introduction to the Odette File Transfer Protocol (OFTP2)
OFTP2 (Odette File Transfer Protocol) is a peer-to-peer protocol which addresses the requirements of electronic data interchange (EDI) in the automotive industry. Beginning in the 80s the first version of OFTP was developed to work with X.25. The current version OFTP2 is based on TCP instead of X.25 or ISDN to match the demand for EDI over the Internet.
Unlike the typical server-client based protocols like REST, AS2 ... an OFTP2 entity is capable to exchange files in both directions. So each entity can either push or pull files to/from the partner. Depending on their role we speak of speakers or listeners.
Each OFTP2 station is defined by a combination of its hostname, Port and Odette Identification Code. This identification allows to run more than one station on the same host (sub-level addressing).
Odette Identification Code
An Odette Identification Code is strongly restricted with its allowed values and its length. Each Odette Identification Code consists of 4 parts:
| Position | Name | Allowed Values | Description |
|---|---|---|---|
| 0 | ODETTE Identifier | [A-Z], [0-9] | "O" indicates an ODETTE assigned Organisation Identifier. Other values may be used for non-ODETTE codes |
| 1 | International Code Designator | [0-9] | The first part of the Organisation Identifier consists of 4 digits |
| 5 | Organisation Code | [A-Z], [0-9], - | A code forming part of the Organisation Identifier |
| 19 | Computer Subaddress | [A-Z], [0-9], /, -, ., &, (, ) | A locally assigned address that uniquely identifies a system within an organisation |
Examples for valid Odette Identification Codes:
- O0039OEMCOMPANY
- O0055SUPPLIER1
- O0013000003ROBBOSCHRBFE02
- O0013PIDEV
- O1300000NURHAN
- O0013PIDEV
Security Features
OFTP2 provides several features to ensure file integrity, authenticity and non-repudiation:
- TLS encrypted connection
- Message encryption
- Message signature
- Message compression
- Signed receipts
- Partner Authentication (certificate or password)
OFTP2 Protocol Overview
The following diagram shows a typical file transmission between two OFTP2 stations. The diagram shows how a file is send from OFTP2 station "A" to OFTP2 station "B".

OFTP2 Station "A" is handed over a file which should be transmitted to OFTP2 station "B". Before the file is sent it is wrapped into a Virtualfile which can optionally be
- signed with the stations private key
- zip-compressed
- encrypted with the public certificate of OFTP2 station B
When OFTP2 station "B" receives the file the received file will be
- decrypted using OFTP2 station's own private key
- uncompressed
- validated.
If the incoming file has successfully been processed and the sender has requested a delivery notification, the recipient sends an acknowledgment of receipt back to the sender. This positive acknowledgment is called End-To-End-Response, or short EERP. In case the decryption, the validation of the signature, or any other step of processing of the incoming file has failed, the sender is informed of the processing-failure by the recipient with a Negative-End-Response (NERP).
Overview
The OFTP2 File Listener is used to receive files or delivery notifications (EERP) from the remote system defined in the OFTP2 Connection environment entry.
Files which are addressed to the local Odette ID will be received by the Orchestra OFTP2 handed over to this inbound channel when the sender's Odette ID and host match the sender's Odette ID and host.

-
De-Serialization Settings Used to define a serializer to parse the input files. If this channel can receive files as well as delivery notifications you should select the binary reader in most cases. If you know that only delivery notifications are received you set the XML reader.
-
Start error process
If the channel encounters an error, you can connect it in the process model with an ‘error start’ event in the process model to create a process instance that handles the error.
If the user sets the ‘Always’ check box, then every time an error occurs, an according process instance will be created. If that error occurs frequently due to a short polling period, the user may want to avoid creating too many process instances. In this case, instead of setting it to 'Always', you should specify a time period. If additional errors occur within that period, no new error processes will be created
OFTP2 Service
The OFTP2 service listens for incoming OFTP2 files or EERPs. All OFTP2 File Listener and OFTP2 File Sender Channels register themselves at this service. It holds the TLS keystore and the keystore which holds Orchestra's CMS-Keystore, which holds the private Key needed for decrypting incoming messages or signing outgoing messages and EERPs.
This service is configured within the environment_settings_designer.xml or within the Monitor -> Environment Settings -> OFTP2
Service Configuration Parameters
-
tempdir: The absolute file path to a temporary directory. This directory is only used during the processing of in- and outgoing files (encryption, signing, compressing / decryption, validation, decompression)
-
odetteid: The local machine's Odette Idenfication Code. Please ensure that you have entered a valid Odette Identification Code here!
-
acceptPort: The TLS port where OFTP2 messages can be received
-
tlsKeystorePassword: The encrypted password to unlock the TLS keystore
-
tlsKeystorePath: The file path to the TLS keystore containing the TLS private key of this Orchestra OFTP2 service
-
cmsKeystorePassword: The encrypted password to unlock the CMS keystore.
-
cmsKeystorePath: The path to the CMS keystore. This keystore holds the private/public keypair which is used to decrypt incoming messages or sign outgoing files and EERPs.
You can encrypt your TLS-keystore or CMS-keystore password by executing the pwd_manager.cmd (Windows) or the pwd_manager.sh (Linux) script:
pwd_manager.sh encrypt -d -t myClearPassword
Example configuration (environment_settings_designer.xml=
<group name="oftp2">
<parameter name="tempdir" value = "/tmp"/>
<parameter name="odetteid" value = "S2019ORCHESTRA01"/>
<parameter name="acceptPort" value = "6619"/>
<parameter name="tlsKeystorePassword" value = "ujhshuuEJjwtDuIiA5UZRNkHK8nppu7XDbDZPYGTCbktqfA="/> <--- The encrypted password (encrypted with pwd_manager.sh)
<parameter name="tlsKeystorePath" value = "/config/security/orchestraOftp2Key.pkcs12"/>
<parameter name="cmsKeystorePassword" value = "ujhshuuEJjwtDuIiA5UZRNkHK8nppu7XDbDZPYGTCbktqfA="/> <--- The encrypted password (encrypted with pwd_manager.sh)
<parameter name="cmsKeystorePath" value = "/config/security/orchestraOftp2Key.pkcs12"/>
</group>
Throttling
This channel is supported by throttling limit feature that described in chapter Throttling.